package zhongbo.java.air.dictionary.vo;

import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 *分页返回信息封装Vo
 *Lombok插件
 *@Data 自动生成geter/seter方法
 *@NoArgsConstructor 自动生成无参构造
 *@AllArgsConstructor 自动生成有参构造
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("分页结果数据封装")
public class PageVo<T> {
    /**
     *页码
     */
    @ApiModelProperty("页码")
    private long pageNumber;
    /**
     *每页大小
     */
    @ApiModelProperty("每页大小")
    private long pageSize;
    /**
     *总页数
     */
    @ApiModelProperty("总页数")
    private long totalPage;
    /**
     *总条目数
     */
    @ApiModelProperty("总条目数")
    private long totalCount;
    /**
     *查询结果
     */
    @ApiModelProperty("查询结果")
    private List<T> records;

    /**
     * 分页构造方法
     * @param pageResult 查询结果
     */
    public PageVo(IPage<T> pageResult){
        this.pageNumber = pageResult.getCurrent();
        this.pageSize = pageResult.getSize();
        this.totalPage  = pageResult.getPages();
        this.totalCount = pageResult.getTotal();
        this.records = pageResult.getRecords();
    }

}
